namespace SubhadraSolutions.Sharp.Logging.Loggers
{
    public sealed class ConsoleDebugTraceLogger : AbstractLogger
    {
        #region Fields

        private readonly ConsoleDebugTraceLogCore _core = new ConsoleDebugTraceLogCore();

        #endregion Fields

        #region Properties

        public override bool ExcludeNullContextValues
        {
            get { return _core.ExcludeNullContextValues; }
            set { _core.ExcludeNullContextValues = value; }
        }

        public string LinePadding
        {
            get { return _core.LinePadding; }
            set { _core.LinePadding = value; }
        }

        public LogTarget Target
        {
            get { return _core.Target; }
            set { _core.Target = value; }
        }

        public WriteDelegate WriterDelegate
        {
            get { return _core.WriterDelegate; }
            set { _core.WriterDelegate = value; }
        }

        #endregion Properties

        #region Methods

        protected override void log(LogStoreItem item)
        {
            _core.log(item);
        }

        #endregion Methods
    }
}